The present disclosure relates generally to the deployment of software applications, and in particular to techniques for conditionally deploying artifacts of a Service Oriented Architecture (SOA) application.
In the field of computer software, deployment refers to the process of making a software application available for use in a runtime environment (e.g., at a customer site). For complex software applications, such as Service Oriented Architecture (SOA) applications, this deployment process can require the installation of a large number of artifacts (e.g., SOA composites, database objects, connection factories, data sources, etc.) across several physical servers/machines.
To facilitate the deployment of a SOA application, techniques have been developed that can capture deployment-related information during the application's development lifecycle and can automatically generate a deployment plan based on the captured information. The deployment plan can include, e.g., all of the artifacts and configurations that are needed for deployment of the application. Once generated, the deployment plan can be processed by an installation module at a customer site to automatically deploy the application content. These techniques (part of a framework referred to as Application Integration Architecture, or AIA) are described in greater detail in U.S. patent application Ser. Nos. 12/768,990, 12/768,999, 12/769,006, and 12/769,016, which are incorporated herein by reference for all purposes.
One shortcoming with existing SOA deployment mechanisms, including the deployment plan mechanism of AIA, is that they cannot adequately allow for the conditional deployment of artifacts. For example, in some situations it may not be necessary to deploy certain artifacts depending on the application version already installed at the customer site. As another example, in some situations the deployment of certain artifacts may be dependent upon the availability of another distinct group of artifacts. In each of these cases, the required deployment activities are not known until the time of deployment/installation at the customer site.